#include "../../common/detail.hpp"
#include "../../server/rpc_server.hpp"


void Add(const Json::Value &req, Json::Value &rsp)
{
    int num1 = req["num1"].asInt();
    int num2 = req["num2"].asInt();
    rsp = num1 + num2; // 计算结果
}

int main()
{
    // 创建SDescribeFactory对象并设置方法名、参数描述和返回值类型---服务
    std::unique_ptr<bitrpc::server::SDescribeFactory> desc_factor(new bitrpc::server::SDescribeFactory()); // 创建SDescribeFactory对象
    desc_factor->setMethodName("Add");
    desc_factor->setParamsDesc("num1", bitrpc::server::VType::INTEGRAL); // 设置方法名和参数描述
    desc_factor->setParamsDesc("num2", bitrpc::server::VType::INTEGRAL);
    desc_factor->setReturnType(bitrpc::server::VType::INTEGRAL); // 设置返回值类型
    desc_factor->setCallback(Add);                               // 设置回调函数
    

    bitrpc::server::RpcServer server(bitrpc::Address("127.0.0.1",9090),true,bitrpc::Address("127.0.0.1",8080));// 创建RpcServer对象
    server.registerMethod(desc_factor->build()); // 注册方法
    server.start(); // 启动服务器

    return 0;
}